package view;

import java.awt.Color;
import java.io.File;

/**
 * Utility-Klasse <br>
 * <b>Funktion:</b> Dient zur zentralen Sammlung aller verwendeten Konstanten.
 * (z.B. Dateipfade)
 * 
 * @author Team Locsi
 * 
 */
public final class UtilityConstants {

	private UtilityConstants() {
	}

	/*
	 * String fuer das Angeben von Dateipfaden '\'
	 */
	public static final String SEPARATOR = File.separator;

	/*
	 * String fuer das Erzeugen eines Zeilenumbruchs
	 */
	public static final String NEWLINE = System.getProperty("line.separator");

	/*
	 * String fuer die Pfadangabe zum Verzeichnis locsi_data
	 */
	public static final String LOCSI_DATA = "locsi_data" + "/";

	/*
	 * String fuer die Pfadangabe zum Verzeichnis icons
	 */
	public static final String ICON_PATH = LOCSI_DATA + "icons" + "/";

	/*
	 * String fuer die Pfadangabe zum Verzeichnis icons\treeIcons
	 */
	public static final String TREEICON_PATH = LOCSI_DATA + "icons" + "/"
			+ "treeIcons" + "/";

	/*
	 * String fuer die Pfadangabe zum Verzeichnis selfdefined_gates
	 */
	public static final String SD_DIRECTORY = "selfdefined_gates" + SEPARATOR;

	/*
	 * String fuer die Pfadangabe zum Verzeichnis saved_circuits
	 */
	public static final String SAVED_CIRCUITS = "saved_circuits" + SEPARATOR;

	/*
	 * String fuer die Pfadangabe zum Verzeichnis pictures
	 */
	public static final String PICTURES_DIRECTORY = "pictures" + SEPARATOR;

	/*
	 * String fuer die Pfadangabe zum Verzeichnis protocols
	 */
	public static final String PROTOCOLL_DIRECTORY = "protocols" + SEPARATOR;

	/*
	 * String fuer die Pfadangabe zum Verzeichnis truth_tables
	 */
	public static final String TRUTHTABLE_DIRECTORY = "truth_tables"
			+ SEPARATOR;

	/*
	 * Radius von Input und Output Objekten
	 */
	public static final int IO_RADIUS = 7;

	/*
	 * Int-Wert fuer den vertikalen Abstand zwischen Input bzw. Output-Objekten
	 */
	public static final int IO_MARGIN = 20;

	/*
	 * Double-Wert fuer das Erstellen von Leitungen (um wie viel vom Ausgang
	 * zunaechst in die Zeichenebenen gegangen wird)
	 */
	public static final double CONNECTOR_MARGIN = 20;

	/*
	 * Standard-Farbe fuer eine Lampe, die nicht leuchtet (L0)
	 */
	public static final Color LAMP_OFF_COLOR = new Color(255, 255, 224);

	/*
	 * Standard-Farbe fuer eine Lampe, die leuchtet (L1)
	 */
	public static final Color LAMP_ON_COLOR = new Color(255, 255, 0);

	/*
	 * Standard-Farbe fuer eine Lampe, die den Wert Undefined besitzt
	 */
	public static final Color LAMP_UD_COLOR = new Color(192, 192, 192);

	/*
	 * Standard-Farbe, falls alle Checks positiv verlaufen sind
	 */
	public static final Color CHECK_OKAY = new Color(50, 205, 50);

	/*
	 * Standard-Farbe, falls mindestens ein Check negativ verlaufen ist
	 */
	public static final Color CHECK_FAILED = new Color(204, 0, 0);

	/*
	 * Standard-Farbe fuer eine Leitung mit dem Vert L0
	 */
	public static final Color LOGIC_VALUE_0 = new Color(153, 0, 0);

	/*
	 * Standard-Farbe fuer eine Leitung mit dem Wert L1
	 */
	public static final Color LOGIC_VALUE_1 = new Color(153, 204, 0);

	/*
	 * Int-Wert fuer den Abstand zweier Rasterlinien voneinander
	 */
	public static final int RASTER_SIZE = 52;

}
